package javaJob.exercise.primary.array;

public class primary3 {
    public static void main(String[] args) {
        int[] nums = {1,2,3,4,5,6,7};
        int k = 3;
//        for (int j=nums.length-1;j>0;j--){
//            nums[j]=nums[j-1];
//        }
//        for (int l=0;l<nums.length;l++){
//            System.out.print(nums[l]);
//        }
        System.out.println(k%nums.length);
        rotate(nums,3);

    }

//    static void rotate(int[] nums, int k) {
//        for (int i=0;i<k%nums.length;i++){
//            int temp=nums[nums.length-1];
//            for (int j=nums.length-1;j>0;j--){
//                nums[j]=nums[j-1];
//            }
//            nums[0]=temp;
//            for (int l=0;l<nums.length;l++){
//                System.out.print(nums[l]);
//            }
//            System.out.println(" ");
//        }
//
//    }
//static void rotate(int[] nums, int k) {
//        if (k>0){
//            int[] temp = new int[nums.length];
//            for (int i=0;i<nums.length;i++){
//                temp[(i+k)%nums.length]=nums[i];
//            }
//            for (int j=0;j<temp.length;j++){
//                nums[j]=temp[j];
//            }
//        }
//        for (int l=0;l<nums.length;l++){
//            System.out.print(nums[l]);
//        }
//
//    }

    static void rotate(int[] nums, int k) {
        int n = nums.length;
        k %= n;
        reverse(nums,0,n-1);
        reverse(nums,0,k-1);
        reverse(nums,k,n-1);
    }

    static void reverse(int[] nums, int start,int end){
        for(int i = start,j = end; i < j;i++,j--){
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
        for (int l=0;l<nums.length;l++){
            System.out.print(nums[l]);
        }
        System.out.println(" ");
    }
}
